package cn.iocoder.yudao.module.system.util.a_gaojian;

import org.springframework.mock.web.MockMultipartFile;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;

public class FileToMultipartFileUtils {
    /**
     * 将 File 转换为 MultipartFile
     *
     * @param file 要转换的 File 对象
     * @return 转换后的 MultipartFile 对象
     * @throws IOException 如果文件读取失败，则抛出异常
     */
    public static MultipartFile convertFileToMultipartFile(File file) throws IOException {
        if (file == null || !file.exists()) {
            throw new IllegalArgumentException("The file is null or does not exist.");
        }

        try (FileInputStream inputStream = new FileInputStream(file)) {
            return new MockMultipartFile(
                    "file",                        // 表单字段名称
                    file.getName(),                 // 原始文件名
                    "application/octet-stream",     // 文件 MIME 类型（根据需要可以修改）
                    inputStream                     // 文件内容的输入流
            );
        }
    }
}
